// 问题描述：一个任务执行完后再执行另一个任务

// 方案一：回调函数
// 待getUrl执行完后才会执行cb
function cb() {
    console.log("延迟执行")
}

function getUrl(){
    setTimeout( () => {
        cb()
    },2000)
}

for(let i=0;i<5;i++){
    getUrl()
}

console.log("最先执行")

// 方案二：promise
function sleep(ms){
    return new Promise(function(resolve){
        console.log("Promise对象一旦生成，立即执行")
        setTimeout(resolve, ms)
    })
}

sleep(4000).then( () => {
    console.log("执行完毕")
})